From: Eli Zaretskii Date: Wed, 25 Jun 2025 16:17:59 +0000 (-0400) Subject: Fix 'insert-directory' in Turkish language-environment X-Git-Tag: archive/raspbian/1%30.2+1-2+rpi1^2~2^2~24^2~49 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22Program/%22http:/www.example.com/cgi/%22https:/%22Program?a=commitdiff_plain;h=e68ad70af6d621895016548b6929e42b8a743a93;p=emacs.git Fix 'insert-directory' in Turkish language-environment * lisp/files.el (insert-directory-clean, insert-directory): Use case-sensitive search for "//DIRED//" and similar strings. (Bug#78894) --- diff --git a/lisp/files.el b/lisp/files.el index 3828bf38d99..c288a5a8b26 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -8160,10 +8160,14 @@ Valid wildcards are `*', `?', `[abc]' and `[a-z]'." ;; "//DIRED-OPTIONS//" line, but no "//DIRED//" line. ;; We take care of that case later. (forward-line -2) - (when (looking-at "//SUBDIRED//") + ;; We reset case-fold-search here and elsewhere, because + ;; case-insensitive search for strings with uppercase 'I' will fail + ;; in language environments (such as Turkish) where 'I' downcases to + ;; 'ı', not to 'i'. + (when (let ((case-fold-search nil)) (looking-at "//SUBDIRED//")) (delete-region (point) (progn (forward-line 1) (point))) (forward-line -1)) - (if (looking-at "//DIRED//") + (if (let ((case-fold-search nil)) (looking-at "//DIRED//")) (let ((end (line-end-position)) (linebeg (point)) error-lines) @@ -8200,7 +8204,7 @@ Valid wildcards are `*', `?', `[abc]' and `[a-z]'." ;; "//DIRED-OPTIONS//"-line, but no "//DIRED//"-line ;; and we went one line too far back (see above). (forward-line 1)) - (if (looking-at "//DIRED-OPTIONS//") + (if (let ((case-fold-search nil)) (looking-at "//DIRED-OPTIONS//")) (delete-region (point) (progn (forward-line 1) (point)))))) ;; insert-directory @@ -8342,11 +8346,12 @@ normally equivalent short `-D' option is just passed on to (string-match "--dired\\>" switches) (member "--dired" switches)) (save-excursion - (forward-line -2) - (when (looking-at "//SUBDIRED//") - (forward-line -1)) - (if (looking-at "//DIRED//") - (setq result 0)))) + (let ((case-fold-search nil)) + (forward-line -2) + (when (looking-at "//SUBDIRED//") + (forward-line -1)) + (if (looking-at "//DIRED//") + (setq result 0))))) (when (and (not (eq 0 result)) (eq insert-directory-ls-version 'unknown))